package com.example.eduservice.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.common.vo.CourseInfoVO;
import com.example.eduservice.entity.EduCourse;
import com.example.eduservice.entity.frontvo.CourseDetailInfoVO;
import com.example.eduservice.entity.frontvo.CourseFrontIndexVO;
import com.example.eduservice.entity.vo.CoursePublishVO;
import com.example.eduservice.entity.vo.EduCourseInfoVO;
import com.example.eduservice.entity.vo.EduCourseQuery;

import java.util.List;
import java.util.Map;

/**
 * @Author:tjf
 * @Description:
 */
public interface EduCourseService extends IService<EduCourse> {
    String saveEduCourse(EduCourseInfoVO courseVO);
    EduCourseInfoVO queryCourseInfoById(String courseId);

    void modifyCourseInfo(EduCourseInfoVO courseInfoVO);

    CoursePublishVO queryCoursePublishInfoById(String courseId);

    void publishCourse(String courseId);

    Page<EduCourse> queryCourseListByConditionForPage(Integer begin, Integer limit, EduCourseQuery courseQuery);

    void removeCourseById(String courseId);

    List<EduCourse> queryPopularCourses();

    List<EduCourse> queryCourseListByTeacherId(String teacherId);

    Map<String, Object> queryFrontCourseListByConditionForPage(Integer current, Integer size, CourseFrontIndexVO courseQuery);

    CourseDetailInfoVO queryCourseDetailInfoById(String id);

    CourseInfoVO queryCourseInfoForOrder(String id);
}
